package myjava.classe;

public class Root {

   public static void main(String[] args) {

      try {

         /**
          * In java anche le classi sono degli oggetti e sono istanza della classe Class
          */

         String cName = "myjava.classe.Idiotic";

         Idiotic foo = new Idiotic();

         // col metodo statico forName devi specificare tutto il package name
         Class myClass1 = Class.forName(cName);

         // il Class lo puoi trovare anche cosi
         Class myClass2 = foo.getClass();
         try {
            /// poi quando hai il Class dinamico puoi fare
            Idiotic faa = (Idiotic) myClass1.newInstance();
         } catch (InstantiationException ex) {
            ex.printStackTrace();
         } catch (IllegalAccessException ex) {
            ex.printStackTrace();
         }

      } catch (ClassNotFoundException ex) {
         ex.printStackTrace();
      }
   }
}